/*package tp.model;

 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Iterator;*/

/**
 * @author Dr Von Nostrum version 1.0 05/10/2006
 * version mejorada sin el equals que daba problema
 */

/*
 * esta es una coleccion de elementos chocables
 */
/*public class ColChocables implements Collection {

 private ArrayList ListChocables;

 public ColChocables(){
 ListChocables = new ArrayList();		
 }*/

/*
 * (non-Javadoc)
 * 
 * @see java.util.Collection#add(java.lang.Object)
 */
/*	public boolean add(Object obj) {
 try {
 Chocable Choc = (Chocable) obj;
 this.ListChocables.add(Choc);
 return true;
 } catch (ClassCastException e) {
 return false;
 }
 }*/

/*
 * No hace nada este metodo
 */
/*	public boolean addAll(Collection arg0) {
 return false;
 }
 */
/*
 * Borra todos los elementos, true si fue asi y false algun error
 */
/*	public void clear() {
 this.removeAll(this);
 }*/

/*
 * Este metodo no hace nada
 */
/*	public boolean contains(Object arg0) {
 return false;
 }*/

/*
 * Este metodo no hace nada
 * @return false siempre
 */
/*	public boolean containsAll(Collection arg0) {
 return false;
 }*/

/*
 * Devuelve true si esta vacia y false si esta con algun elemento
 * @return false si esta con algun elemento, true si no es asi 
 */
/*	public boolean isEmpty() {
 Iterator it = this.iterator();
 if (it.hasNext()) {
 return false;
 }
 return true;
 }

 /*
 * Devuelve un iterador que recorre la coleccion
 */
/*public Iterator iterator() {
 return this.ListChocables.iterator();
 }

 /*
 * Elimina dentro de la coleccion el objeto que matchee la referencia o el
 * contenido, devolviendo true si lo elimino y false si no lo elimino
 */
/*	public boolean remove(Object obj) {
 try {
 Chocable choc = (Chocable) obj;//si le obj que me mandan no es lo que tiene que ser explota todo
 Iterator it = this.ListChocables.iterator();
 if (!this.isEmpty()) { // Aqui no hace falta el try de
 while (it.hasNext()){
 Chocable elem = (Chocable) it.next();// cast porque lo probe cuando los metia
 if (choc == elem) {
 it.remove();
 return true;
 }
 }
 }
 } catch (ClassCastException e) {
 return false;
 }
 return true;
 }

 /*
 * Borra todos los elementos, true si fue asi y false si algun error
 */
/*	public boolean removeAll(Collection arg0) {
 try {
 Iterator it = arg0.iterator();
 while (it.hasNext()) {
 it.next();
 it.remove();
 }
 return true;
 } catch (RuntimeException e) {
 return false; // ha ocurrido un error que de antemano no puedo
 // saber mariano, si lees esto taria bueno que me
 // digas que errores puedo poner ahi
 }
 }

 /*
 * Este metodo no hace nada
 */
/*	public boolean retainAll(Collection arg0) {
 return false;
 }

 /*
 * devuelve la cantidad de objetos insertos hay en la coleccion
 */
/*	public int size() {
 int i= 1; //fabrica un contador
 Iterator it = this.iterator();
 while (it.hasNext()){ //pregunta mientrsa se pueda recorrer
 i += 1;
 it.next();
 }
 return i;
 }

 /*
 * Este metodo no hace nada
 */
/*	public Object[] toArray() {
 return null;
 }

 /*
 * Este metodo no hace nada
 */
//@SuppressWarnings("unchecked")
/*	public Object[] toArray(Object[] arg0) {
 return null;
 }

 }
 */

package tp.model;

import java.util.*;

public class ColChocables extends ArrayList {

	public ColChocables() {
		super();
	}

	public Iterator iterator() {
		return new IteratorColChocables(this);
	}

	public class IteratorColChocables implements Iterator {
		private List listAux;

		private int indice;

		public IteratorColChocables(ColChocables l) {
			indice = 0;
			listAux = new ArrayList(l);
			// Collections.sort(listAux,comp);

		}

		public boolean hasNext() {
			return (indice < listAux.size());
		}

		public Object next() {
			indice++;
			return listAux.get(indice - 1);
		}

		public void remove(Object o) {
			try {
				int i = 0;
				boolean encontrado = false;
				Iterator it = this.listAux.iterator();
				while ((it.hasNext()) && (!encontrado)) {
					Object oP = it.next();
					if (o == oP) {
						encontrado = true;
					}
					i++;
				}
				if (encontrado) {
					listAux.remove(i);
				}
			} catch (java.lang.UnsupportedOperationException e) {
				throw new java.lang.UnsupportedOperationException();
			}
		}

		public void remove() {
			// TODO Auto-generated method stu
		}
	}
}